package com.sky.config;


import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * 配置类，用于创建和配置RedisTemplate对象。该类在Spring Boot应用启动时自动运行，
 * 为应用程序提供了一个预配置的RedisTemplate实例，以便能够方便地与Redis进行交互。
 * RedisTemplate的key序列化器被设置为StringRedisSerializer，以确保key是以字符串形式存储的。
 */
@Configuration
@Slf4j
public class RedisConfiguration {
  @Bean
  public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
    log.info("开始创建redis模板对象...");
    
    RedisTemplate redisTemplate = new RedisTemplate();
    // 设置redis的连接工厂对象
    redisTemplate.setConnectionFactory(redisConnectionFactory);
    // 设置key的序列化器， 默认为jdkSerializationRedisSerializer
    redisTemplate.setKeySerializer(new StringRedisSerializer());
    
    return redisTemplate;
  }
}
